home *** CD-ROM | disk | FTP | other *** search
/ Revolution - Das Atari CD Magazin 1997 / Revolution - Das Atari CD Magazin 1.iso / software / anwendng / qed_397 / sourcen / global.h < prev    next >
C/C++ Source or Header  |  1997-01-14  |  7KB  |  201 lines

  1. /*****************************************************************************/
  2. /*                                                                                                                                             */
  3. /* Modul: EXTERN.H                                                                                                                     */
  4. /*                                                                                                                                                     */
  5. /*****************************************************************************/
  6. #ifndef _qed_global_h_
  7. #define _qed_global_h_
  8.  
  9. #include <string.h>
  10. #include <stdio.h>
  11. #include <stdlib.h>
  12. #include <portab.h>
  13. #include <aes.h>
  14. #include <vdi.h>
  15. #include <tos.h>
  16. #include <mglobal.h>
  17. #include <mydial.h>
  18. #include <nkcc.h>
  19. #include <xrsrc.h>
  20. #include <time.h>
  21.  
  22. #include "set.h"
  23.  
  24. #ifdef __TURBOC__
  25. #define global _GemParBlk.global            /* etwas portabler */
  26. #endif
  27.  
  28. /* MK@UN: Die folgenden Definitionen sind möglicherweise schon
  29.            in aes.h / vdi.h vorhanden: */
  30.  
  31. #ifndef TA_LEFT                            /* text alignment */
  32. #define TA_LEFT        0
  33. #define TA_ASCENT        2
  34. #define TA_TOP            5
  35. #endif
  36.  
  37. #ifndef SMALLER                            /* AES 4.1 */
  38. #define SMALLER                0x4000
  39. #endif
  40.  
  41. #ifndef SC_CHANGED
  42. #define SC_CHANGED            80
  43. #endif
  44.  
  45. /****** DEFINES **************************************************************/
  46.  
  47. #define NO_HANDLE     (-1)                        /* Wert für ungültiges Handle */
  48.  
  49. #define NDC        0                                /* Normalisierte Koordinaten */
  50. #define RC        2                                /* Raster Koordinaten */
  51.  
  52. #define odd(i)        ((i) & 1) 
  53.  
  54. #define EOS    '\0'
  55. #define NIL    -1
  56.  
  57. /****** TYPES ****************************************************************/
  58.  
  59. #define MAX_PATH_LEN    1024
  60. typedef UBYTE PATH[MAX_PATH_LEN];
  61.  
  62. #define MAX_NAME_LEN    255
  63. typedef UBYTE FILENAME[MAX_NAME_LEN];
  64.  
  65. typedef struct
  66. {
  67.     FILENAME name;
  68.     FILENAME suffix;
  69. } FSEL;
  70.  
  71. typedef enum 
  72. {    
  73.     POS_CHANGE,
  74.     LINE_CHANGE,
  75.     TOTAL_CHANGE,
  76.     NOP_CHANGE,
  77.     SCROLL_UP,
  78.     SCROLL_DOWN,
  79.     MOVE_UP,
  80.     MOVE_DOWN,
  81.     BLK_CHANGE
  82. } CHANGE;
  83.  
  84. /*
  85. SCROLL_UP     : Alles unter der aktuellen Zeile wird hochgescrollt,
  86.           die letzte Zeile wird natürlich neu geschrieben.
  87.           (Cntrl-Y, und Delete am Ende der Zeile).
  88. SCROLL_DOWN    : Alles unterhalb der aktuellen Zeile und diese Zeile werden
  89.           nach unten gescrollt, die aktuelle Zeile wird neu
  90.           geschrieben. Ist auch LINE_CHANGE gesetzt wird auch die
  91.           Zeile vor der aktuellen Zeile neu geschrieben.
  92.           (RETURN, last_out_klemm)
  93. MOVE_UP,_DOWN    : Das Fenster wird hoch und runter gescrollt um anz Zeilen
  94. BLK_CHANGE       : Die Blockmarkierung wurde geändert.
  95. */
  96.  
  97. typedef struct                                                                
  98. {                                                                             
  99.       LONG    x;                                                              
  100.       LONG    y;                                                              
  101.       LONG    w;                                                              
  102.       LONG    h;                                                              
  103. } LRECT;                                                                      
  104.                                                                               
  105. /****** VARIABLES ************************************************************/
  106.  
  107. EXTERN WORD        phys_handle;        /* Physikalisches Workstation Handle */
  108. EXTERN WORD        gl_apid;                /* Identifikation für Applikation */
  109. EXTERN WORD        gl_wchar;            /* Je nach aktuellem Font z.B. 8*16 */
  110. EXTERN WORD        gl_hchar;
  111. EXTERN WORD        sys_wchar;            /* 8*16 */
  112. EXTERN WORD        sys_hchar;
  113. EXTERN WORD        sys_wbox;            /* 19*19 */
  114. EXTERN WORD        sys_hbox;
  115. EXTERN WORD        min_ascii;
  116. EXTERN WORD        max_ascii;
  117.  
  118. EXTERN WORD        fill_color;            /* aktuell eingestellte Füllfarbe */
  119. EXTERN WORD        planes;                /* Anzahl der Planes */
  120. EXTERN WORD        gem;                    /* GEM-Version */
  121. EXTERN BOOLEAN    mint;                    /* MiNT aktiv? */
  122. EXTERN BOOLEAN    aes41;                /* MultiTOS/N.AES aktiv? */
  123. EXTERN WORD     magx;                    /* MagiC da (>0) -> Version */
  124. EXTERN BOOLEAN    gdos;                    /* GDOS vorhanden? */
  125.  
  126. EXTERN BOOLEAN    global_shift;        /* bei aktueller Opertion wurde Shift gedrückt */
  127. EXTERN BOOLEAN    quick_close;        /* Sichern der Texte ohne Nachfrage */
  128. EXTERN WORD        vdi_handle;            /* Virtuelles Workstation Handle */
  129.  
  130. EXTERN RECT        desk;                    /* Bildschirm-Größe  0,19,640,381 */
  131.  
  132. EXTERN BOOLEAN    done;                    /* Ende gewählt ? */
  133. EXTERN PATH        qed_path;            /* Name und Pfad der QED-Datei */
  134. EXTERN PATH        app_path;            /* Pfad der Applikation */
  135. EXTERN PATH        scrapdir;            /* Clipboard-Pfad */
  136.  
  137. EXTERN struct tm    *local_time;    /* enthält die aktuelle Uhrzeit */
  138.  
  139. EXTERN WORD        desire_x, return_code;
  140. EXTERN LONG        desire_y, undo_y;
  141.  
  142. /****** FUNCTIONS ************************************************************/
  143.  
  144. WORD             open_vwork        (WORD *w_out);
  145.  
  146. VOID            Set_mouse        (int number);
  147. WORD            Get_mouse        (void);
  148. BOOLEAN        Mouse_sleeps    (void);
  149. VOID            Sleep_mouse     (void);
  150. VOID            Wake_mouse        (void);
  151. VOID            Last_mouse        (void);
  152. VOID            Hide_mouse        (void);
  153. VOID            Show_mouse        (void);
  154. VOID            Busy_mouse        (void);
  155. VOID            Arrow_mouse        (void);
  156.  
  157. VOID            print_headline    (UBYTE *str);
  158.  
  159. VOID            start_aktion    (CONST UBYTE *head, BOOLEAN inter, LONG max);
  160. VOID            do_aktion        (LONG value);
  161. VOID            end_aktion        (VOID);
  162.  
  163. VOID            str_upper        (UBYTE *str);
  164. VOID            str_lower        (UBYTE *str);
  165.  
  166. BOOLEAN        str_to_key        (UBYTE *str, MKINFO *mk);
  167.  
  168. BOOLEAN        inside            (WORD x, WORD y, CONST RECT *r);
  169.  
  170. BOOLEAN        get_clip            (RECT *size);
  171. VOID            set_clip            (BOOLEAN     flag, CONST RECT *size);
  172.  
  173. WORD            note                (WORD button, WORD index);
  174. WORD            inote                (WORD button, WORD index, LONG i);
  175. WORD            snote                (WORD button, WORD index, UBYTE *str);
  176.  
  177. VOID            make_shortpath    (CONST UBYTE *path, UBYTE *shortpath, WORD maxlen);
  178. BOOLEAN        make_normalpath(UBYTE *path, BOOLEAN with_filename);
  179. VOID            make_ext            (UBYTE *fullname, CONST UBYTE *ext);
  180. VOID            get_datum        (UBYTE *date);
  181. long            file_time        (CONST UBYTE *filename, UBYTE *date, UBYTE *time);
  182. long            file_size        (CONST UBYTE *filename);
  183. VOID            file_name        (CONST UBYTE *fullname, UBYTE *filename, BOOLEAN withoutExt);
  184. VOID             file_splitt     (CONST UBYTE *fullname, UBYTE *path, UBYTE *name);
  185. WORD            get_first_drive(VOID);
  186. VOID             drive_name        (WORD drive, UBYTE *name);
  187. VOID            get_drive_space(WORD drive, ULONG *total, ULONG *free);
  188. BOOLEAN        get_path            (UBYTE *path, UBYTE drive);
  189. BOOLEAN        set_path            (UBYTE *path);
  190. BOOLEAN        file_exist        (CONST UBYTE *filename);
  191. BOOLEAN        file_readonly    (CONST UBYTE *filename);
  192. BOOLEAN        path_exist        (CONST UBYTE *pathname);
  193. VOID            set_fsel_path    (CONST UBYTE *path);
  194. BOOLEAN        select_file     (FSEL *fsel, UBYTE *filename, CONST UBYTE *lable);
  195. UBYTE         **select_mfile    (FSEL *fsel, UBYTE *path, CONST UBYTE *lable, WORD *anz);
  196.  
  197. VOID            init_global        (VOID);
  198. VOID            term_global        (VOID);
  199.  
  200. #endif
  201.